home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Mega Archive 2
/
Atari Mega Archive CD - Volume 2.iso
/
8bit
/
cislib_b
/
xmodem.doc
< prev
next >
Wrap
Text File
|
1995-04-22
|
27KB
|
793 lines
XMODEM and COMPUSERVE
October, 1984
NOTE: XMODEM, like the rest of the
CompuServe Information Service, is
provided on an "as-is, as-available"
basis.
Questions and Answers
---------------------
Question: Why doesn't XMODEM work with my PC-Talk program?
Answer: PC-Talk works just fine with CompuServe's
implementation of the XMODEM protocol, but you
need to be running 8 bits / no parity in order for
PC-Talk to do XMODEM.
See: Section 4.2
Question: I download a file using XMODEM, but all I get are
a bunch of hexidecimal characters (something like:
:1800100AB759CDEF7) What I doing wrong?
Answer: You need to specify that you are downloading a
binary file, rather than a text file. You can do
this by appending a "/type:bin" in the download
command (for example:
dow chess.bin/proto:XMODEM/type:bin )
or by selecting transfer type 2 (Binary) from the
download menu.
See: Section 3.2
Question: I download a file using XMODEM, but all I get is a
very short file full of garbage.
Answer: You may be trying to download an ASCII (text) file
as if it were a binary file. Append "/type:ascii"
to the filename in the download command (for
example:
dow chess.txt/proto:XMODEM/type:ascii
or select transfer type 1 (ASCII) from the
download menu.
See: Section 3.2
Question: My Crosstalk program doesn't work with
CompuServe's XMODEM!
Answer: Crosstalk XVI 3.4 has some compatibility problems
with CompuServe, and cannot be used as is. There
- 1 -
XMODEM on CompuServe October 1984
is a patch in the IBM PC Sig's XA5 database
(called CISXTK.TXT) which can be used to make
Crosstalk work well with CompuServe. Future
versions of Crosstalk should work well with
CompuServe.
See: Section 4.1
Question: My <fill in the blank> terminal program doesn't
work with CompuServe's XMODEM, but it works just
fine with everybody else! What are you doing
wrong????
Answer: The XMODEM protocol was never designed with the
idea of communicating over a packet switching
network to large time sharing computers. The
biggest problem comes from the fact that the
network introduces delays between the host and the
micro and that the host may not be able to respond
quickly to the micro's communications.
Most terminal programs do work with CompuServe,
and many that do not can be patched to work with
CompuServe (e.g., Crosstalk) by simply relaxing
the timing parameters in the program.
See: Section 3.1
Question: Does your XMODEM implementation handle CRC
checking as well as checksumming?
Answer: Yes.
See: Section 2
Question: Where can I find documentation on the XMODEM
protocol?
Answer: The closest thing to an official document
specifying the XMODEM protocol is a small notes
file Ward Christensen wrote describing the basic
protocol. This file can be found in many of the
SIGs on CompuServe.
See: Reference [1].
- 2 -
XMODEM on CompuServe October 1984
0. Abstract
CompuServe has implemented a version of the XMODEM protocol
that allows most XMODEM users to successfully transfer files
securely between their micros and CompuServe's hosts. This
implementation was not and cannot be 100% faithful to the
original XMODEM specification (see reference [1]), and the
differences between micro to micro XMODEM and micro to host
XMODEM has caused some people problems. The purpose of this
short article is to describe, in detail, the most frequent
problems people have with micro to host XMODEM, and to offer
some suggestions on how to overcome these problems.
1. XMODEM's origins
The XMODEM (aka MODEM7) protocol was originally devised by
Ward Christensen as a protocol for communicatons between
microcomputers. As it was originally devised, the user runs
a program called "MODEM", and dials up another computer.
The user then instructs the remote computer to run a program
called "XMODEM". XMODEM and MODEM then use the XMODEM
protocol to transfer files between the two computers.
The XMODEM protocol has several assumptions implicit in its
design, and these assumptions are the source of the problems
people have in using XMODEM protocol on CompuServe. Some of
these assumptions are:
o File lengths are exact multiples of 128 bytes.
o Word size is 8 bits on both computers.
o Data is transmitted 8 bits, no parity, one stop bit.
o Both computers are dedicated (single user)
microcomputers.
o Both computers are talking to each other directly
over a phone line.
2. The XMODEM protocol
The XMODEM protocol is a half duplex protocol -- infomation
travels in only one direction at once. The basic protocol
works something like this:
1. When the receiver is ready to start receiving data,
it transmits a <nak> (negative acknowledgment)
- 3 -
XMODEM on CompuServe October 1984
character to the sender, and continues to do so
every 10 seconds until:
2. The sender sends a block. Each block contains the
block number (modulo 256), 128 bytes of data, and a
checksum. Once the block is sent, the sender waits
while:
3. The receiver verifies that he received the block
correctly; if the received checksum matches, then
the receiver sends an <ack> character, and the
sender sends the next 128 bytes of the file (step
2). If the block was not received correctly -- or
if 10 seconds expires before a complete block is
received, the receiver sends a <nak> character to
the sender. When the sender receives a <nak>, it
re-transmits the last block.
4. St